{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "from tensorflow import keras\n",
    "from tensorflow.keras import layers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 加载电影评论数据\n",
    "data = keras.datasets.imdb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "max_word = 10000"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 进行数据加载\n",
    "(x_train,y_train),(x_test,y_test) = data.load_data(num_words=max_word) # num_words指定编码单词的个数，此处表示只给前10000个单词进行编码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((25000,), (25000,))"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_train.shape,y_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1,\n",
       " 14,\n",
       " 22,\n",
       " 16,\n",
       " 43,\n",
       " 530,\n",
       " 973,\n",
       " 1622,\n",
       " 1385,\n",
       " 65,\n",
       " 458,\n",
       " 4468,\n",
       " 66,\n",
       " 3941,\n",
       " 4,\n",
       " 173,\n",
       " 36,\n",
       " 256,\n",
       " 5,\n",
       " 25,\n",
       " 100,\n",
       " 43,\n",
       " 838,\n",
       " 112,\n",
       " 50,\n",
       " 670,\n",
       " 2,\n",
       " 9,\n",
       " 35,\n",
       " 480,\n",
       " 284,\n",
       " 5,\n",
       " 150,\n",
       " 4,\n",
       " 172,\n",
       " 112,\n",
       " 167,\n",
       " 2,\n",
       " 336,\n",
       " 385,\n",
       " 39,\n",
       " 4,\n",
       " 172,\n",
       " 4536,\n",
       " 1111,\n",
       " 17,\n",
       " 546,\n",
       " 38,\n",
       " 13,\n",
       " 447,\n",
       " 4,\n",
       " 192,\n",
       " 50,\n",
       " 16,\n",
       " 6,\n",
       " 147,\n",
       " 2025,\n",
       " 19,\n",
       " 14,\n",
       " 22,\n",
       " 4,\n",
       " 1920,\n",
       " 4613,\n",
       " 469,\n",
       " 4,\n",
       " 22,\n",
       " 71,\n",
       " 87,\n",
       " 12,\n",
       " 16,\n",
       " 43,\n",
       " 530,\n",
       " 38,\n",
       " 76,\n",
       " 15,\n",
       " 13,\n",
       " 1247,\n",
       " 4,\n",
       " 22,\n",
       " 17,\n",
       " 515,\n",
       " 17,\n",
       " 12,\n",
       " 16,\n",
       " 626,\n",
       " 18,\n",
       " 2,\n",
       " 5,\n",
       " 62,\n",
       " 386,\n",
       " 12,\n",
       " 8,\n",
       " 316,\n",
       " 8,\n",
       " 106,\n",
       " 5,\n",
       " 4,\n",
       " 2223,\n",
       " 5244,\n",
       " 16,\n",
       " 480,\n",
       " 66,\n",
       " 3785,\n",
       " 33,\n",
       " 4,\n",
       " 130,\n",
       " 12,\n",
       " 16,\n",
       " 38,\n",
       " 619,\n",
       " 5,\n",
       " 25,\n",
       " 124,\n",
       " 51,\n",
       " 36,\n",
       " 135,\n",
       " 48,\n",
       " 25,\n",
       " 1415,\n",
       " 33,\n",
       " 6,\n",
       " 22,\n",
       " 12,\n",
       " 215,\n",
       " 28,\n",
       " 77,\n",
       " 52,\n",
       " 5,\n",
       " 14,\n",
       " 407,\n",
       " 16,\n",
       " 82,\n",
       " 2,\n",
       " 8,\n",
       " 4,\n",
       " 107,\n",
       " 117,\n",
       " 5952,\n",
       " 15,\n",
       " 256,\n",
       " 4,\n",
       " 2,\n",
       " 7,\n",
       " 3766,\n",
       " 5,\n",
       " 723,\n",
       " 36,\n",
       " 71,\n",
       " 43,\n",
       " 530,\n",
       " 476,\n",
       " 26,\n",
       " 400,\n",
       " 317,\n",
       " 46,\n",
       " 7,\n",
       " 4,\n",
       " 2,\n",
       " 1029,\n",
       " 13,\n",
       " 104,\n",
       " 88,\n",
       " 4,\n",
       " 381,\n",
       " 15,\n",
       " 297,\n",
       " 98,\n",
       " 32,\n",
       " 2071,\n",
       " 56,\n",
       " 26,\n",
       " 141,\n",
       " 6,\n",
       " 194,\n",
       " 7486,\n",
       " 18,\n",
       " 4,\n",
       " 226,\n",
       " 22,\n",
       " 21,\n",
       " 134,\n",
       " 476,\n",
       " 26,\n",
       " 480,\n",
       " 5,\n",
       " 144,\n",
       " 30,\n",
       " 5535,\n",
       " 18,\n",
       " 51,\n",
       " 36,\n",
       " 28,\n",
       " 224,\n",
       " 92,\n",
       " 25,\n",
       " 104,\n",
       " 4,\n",
       " 226,\n",
       " 65,\n",
       " 16,\n",
       " 38,\n",
       " 1334,\n",
       " 88,\n",
       " 12,\n",
       " 16,\n",
       " 283,\n",
       " 5,\n",
       " 16,\n",
       " 4472,\n",
       " 113,\n",
       " 103,\n",
       " 32,\n",
       " 15,\n",
       " 16,\n",
       " 5345,\n",
       " 19,\n",
       " 178,\n",
       " 32]"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_train[0] # 用一个整数来代替单词"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "将文本训练成为密集向量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[218,\n",
       " 189,\n",
       " 141,\n",
       " 550,\n",
       " 147,\n",
       " 43,\n",
       " 123,\n",
       " 562,\n",
       " 233,\n",
       " 130,\n",
       " 450,\n",
       " 99,\n",
       " 117,\n",
       " 238,\n",
       " 109,\n",
       " 129,\n",
       " 163,\n",
       " 752,\n",
       " 212,\n",
       " 177,\n",
       " 129,\n",
       " 140,\n",
       " 256,\n",
       " 888,\n",
       " 93,\n",
       " 142,\n",
       " 220,\n",
       " 193,\n",
       " 171,\n",
       " 221,\n",
       " 174,\n",
       " 647,\n",
       " 233,\n",
       " 162,\n",
       " 597,\n",
       " 234,\n",
       " 51,\n",
       " 336,\n",
       " 139,\n",
       " 231,\n",
       " 704,\n",
       " 142,\n",
       " 861,\n",
       " 132,\n",
       " 122,\n",
       " 570,\n",
       " 55,\n",
       " 214,\n",
       " 103,\n",
       " 186,\n",
       " 113,\n",
       " 169,\n",
       " 469,\n",
       " 138,\n",
       " 302,\n",
       " 766,\n",
       " 351,\n",
       " 146,\n",
       " 59,\n",
       " 206,\n",
       " 107,\n",
       " 152,\n",
       " 186,\n",
       " 431,\n",
       " 147,\n",
       " 684,\n",
       " 383,\n",
       " 324,\n",
       " 252,\n",
       " 263,\n",
       " 787,\n",
       " 211,\n",
       " 314,\n",
       " 118,\n",
       " 390,\n",
       " 132,\n",
       " 710,\n",
       " 306,\n",
       " 167,\n",
       " 115,\n",
       " 95,\n",
       " 158,\n",
       " 156,\n",
       " 82,\n",
       " 502,\n",
       " 314,\n",
       " 190,\n",
       " 174,\n",
       " 60,\n",
       " 145,\n",
       " 214,\n",
       " 659,\n",
       " 408,\n",
       " 515,\n",
       " 461,\n",
       " 202,\n",
       " 238,\n",
       " 170,\n",
       " 107,\n",
       " 171,\n",
       " 158,\n",
       " 145,\n",
       " 790,\n",
       " 258,\n",
       " 287,\n",
       " 67,\n",
       " 123,\n",
       " 975,\n",
       " 775,\n",
       " 236,\n",
       " 195,\n",
       " 274,\n",
       " 214,\n",
       " 91,\n",
       " 1038,\n",
       " 815,\n",
       " 183,\n",
       " 206,\n",
       " 50,\n",
       " 118,\n",
       " 147,\n",
       " 141,\n",
       " 60,\n",
       " 56,\n",
       " 439,\n",
       " 439,\n",
       " 213,\n",
       " 144,\n",
       " 533,\n",
       " 303,\n",
       " 203,\n",
       " 563,\n",
       " 129,\n",
       " 153,\n",
       " 55,\n",
       " 92,\n",
       " 174,\n",
       " 187,\n",
       " 183,\n",
       " 165,\n",
       " 78,\n",
       " 198,\n",
       " 156,\n",
       " 223,\n",
       " 127,\n",
       " 61,\n",
       " 362,\n",
       " 84,\n",
       " 57,\n",
       " 176,\n",
       " 159,\n",
       " 57,\n",
       " 159,\n",
       " 165,\n",
       " 213,\n",
       " 194,\n",
       " 149,\n",
       " 130,\n",
       " 203,\n",
       " 19,\n",
       " 98,\n",
       " 466,\n",
       " 525,\n",
       " 130,\n",
       " 322,\n",
       " 153,\n",
       " 408,\n",
       " 215,\n",
       " 472,\n",
       " 143,\n",
       " 136,\n",
       " 354,\n",
       " 260,\n",
       " 319,\n",
       " 125,\n",
       " 209,\n",
       " 282,\n",
       " 810,\n",
       " 142,\n",
       " 240,\n",
       " 148,\n",
       " 198,\n",
       " 193,\n",
       " 123,\n",
       " 128,\n",
       " 103,\n",
       " 479,\n",
       " 345,\n",
       " 263,\n",
       " 165,\n",
       " 205,\n",
       " 333,\n",
       " 184,\n",
       " 92,\n",
       " 177,\n",
       " 335,\n",
       " 120,\n",
       " 121,\n",
       " 259,\n",
       " 180,\n",
       " 160,\n",
       " 114,\n",
       " 59,\n",
       " 343,\n",
       " 513,\n",
       " 133,\n",
       " 206,\n",
       " 152,\n",
       " 206,\n",
       " 572,\n",
       " 153,\n",
       " 139,\n",
       " 151,\n",
       " 129,\n",
       " 129,\n",
       " 196,\n",
       " 433,\n",
       " 199,\n",
       " 140,\n",
       " 311,\n",
       " 151,\n",
       " 200,\n",
       " 584,\n",
       " 127,\n",
       " 513,\n",
       " 781,\n",
       " 932,\n",
       " 526,\n",
       " 161,\n",
       " 646,\n",
       " 135,\n",
       " 52,\n",
       " 267,\n",
       " 174,\n",
       " 185,\n",
       " 219,\n",
       " 81,\n",
       " 219,\n",
       " 131,\n",
       " 153,\n",
       " 270,\n",
       " 644,\n",
       " 155,\n",
       " 546,\n",
       " 284,\n",
       " 85,\n",
       " 293,\n",
       " 155,\n",
       " 358,\n",
       " 45,\n",
       " 231,\n",
       " 124,\n",
       " 178,\n",
       " 118,\n",
       " 260,\n",
       " 393,\n",
       " 127,\n",
       " 157,\n",
       " 107,\n",
       " 322,\n",
       " 188,\n",
       " 126,\n",
       " 155,\n",
       " 294,\n",
       " 249,\n",
       " 177,\n",
       " 138,\n",
       " 215,\n",
       " 263,\n",
       " 132,\n",
       " 150,\n",
       " 217,\n",
       " 188,\n",
       " 385,\n",
       " 199,\n",
       " 127,\n",
       " 325,\n",
       " 161,\n",
       " 140,\n",
       " 215,\n",
       " 240,\n",
       " 230,\n",
       " 327,\n",
       " 129,\n",
       " 113,\n",
       " 225,\n",
       " 87,\n",
       " 496,\n",
       " 234,\n",
       " 311,\n",
       " 215,\n",
       " 111,\n",
       " 102,\n",
       " 110,\n",
       " 165,\n",
       " 839,\n",
       " 296,\n",
       " 130,\n",
       " 104,\n",
       " 274,\n",
       " 229,\n",
       " 235,\n",
       " 653,\n",
       " 468,\n",
       " 578,\n",
       " 139,\n",
       " 315,\n",
       " 65,\n",
       " 178,\n",
       " 836,\n",
       " 164,\n",
       " 239,\n",
       " 212,\n",
       " 297,\n",
       " 258,\n",
       " 157,\n",
       " 78,\n",
       " 544,\n",
       " 152,\n",
       " 120,\n",
       " 208,\n",
       " 163,\n",
       " 226,\n",
       " 304,\n",
       " 195,\n",
       " 454,\n",
       " 121,\n",
       " 175,\n",
       " 617,\n",
       " 320,\n",
       " 121,\n",
       " 245,\n",
       " 655,\n",
       " 114,\n",
       " 131,\n",
       " 104,\n",
       " 238,\n",
       " 138,\n",
       " 164,\n",
       " 52,\n",
       " 215,\n",
       " 87,\n",
       " 471,\n",
       " 142,\n",
       " 289,\n",
       " 106,\n",
       " 141,\n",
       " 239,\n",
       " 412,\n",
       " 154,\n",
       " 175,\n",
       " 828,\n",
       " 41,\n",
       " 144,\n",
       " 525,\n",
       " 176,\n",
       " 551,\n",
       " 251,\n",
       " 621,\n",
       " 159,\n",
       " 75,\n",
       " 207,\n",
       " 80,\n",
       " 94,\n",
       " 78,\n",
       " 449,\n",
       " 622,\n",
       " 157,\n",
       " 85,\n",
       " 260,\n",
       " 1011,\n",
       " 444,\n",
       " 326,\n",
       " 586,\n",
       " 118,\n",
       " 270,\n",
       " 360,\n",
       " 95,\n",
       " 640,\n",
       " 315,\n",
       " 138,\n",
       " 573,\n",
       " 434,\n",
       " 313,\n",
       " 128,\n",
       " 1007,\n",
       " 130,\n",
       " 257,\n",
       " 209,\n",
       " 159,\n",
       " 602,\n",
       " 109,\n",
       " 250,\n",
       " 117,\n",
       " 149,\n",
       " 199,\n",
       " 55,\n",
       " 578,\n",
       " 158,\n",
       " 323,\n",
       " 486,\n",
       " 177,\n",
       " 73,\n",
       " 127,\n",
       " 138,\n",
       " 130,\n",
       " 110,\n",
       " 283,\n",
       " 244,\n",
       " 375,\n",
       " 137,\n",
       " 156,\n",
       " 153,\n",
       " 112,\n",
       " 94,\n",
       " 137,\n",
       " 195,\n",
       " 137,\n",
       " 112,\n",
       " 25,\n",
       " 106,\n",
       " 105,\n",
       " 272,\n",
       " 857,\n",
       " 116,\n",
       " 58,\n",
       " 114,\n",
       " 71,\n",
       " 57,\n",
       " 292,\n",
       " 56,\n",
       " 157,\n",
       " 283,\n",
       " 87,\n",
       " 327,\n",
       " 481,\n",
       " 918,\n",
       " 129,\n",
       " 181,\n",
       " 214,\n",
       " 601,\n",
       " 215,\n",
       " 117,\n",
       " 112,\n",
       " 401,\n",
       " 165,\n",
       " 154,\n",
       " 587,\n",
       " 417,\n",
       " 345,\n",
       " 233,\n",
       " 496,\n",
       " 403,\n",
       " 317,\n",
       " 189,\n",
       " 340,\n",
       " 195,\n",
       " 370,\n",
       " 194,\n",
       " 150,\n",
       " 559,\n",
       " 48,\n",
       " 129,\n",
       " 110,\n",
       " 45,\n",
       " 173,\n",
       " 674,\n",
       " 416,\n",
       " 233,\n",
       " 146,\n",
       " 73,\n",
       " 146,\n",
       " 190,\n",
       " 130,\n",
       " 127,\n",
       " 217,\n",
       " 785,\n",
       " 227,\n",
       " 119,\n",
       " 149,\n",
       " 150,\n",
       " 175,\n",
       " 588,\n",
       " 130,\n",
       " 414,\n",
       " 172,\n",
       " 523,\n",
       " 119,\n",
       " 130,\n",
       " 122,\n",
       " 219,\n",
       " 264,\n",
       " 202,\n",
       " 218,\n",
       " 367,\n",
       " 230,\n",
       " 429,\n",
       " 985,\n",
       " 144,\n",
       " 128,\n",
       " 60,\n",
       " 78,\n",
       " 125,\n",
       " 131,\n",
       " 186,\n",
       " 283,\n",
       " 121,\n",
       " 226,\n",
       " 82,\n",
       " 57,\n",
       " 468,\n",
       " 336,\n",
       " 218,\n",
       " 110,\n",
       " 535,\n",
       " 603,\n",
       " 147,\n",
       " 117,\n",
       " 156,\n",
       " 72,\n",
       " 72,\n",
       " 69,\n",
       " 529,\n",
       " 148,\n",
       " 56,\n",
       " 263,\n",
       " 202,\n",
       " 348,\n",
       " 172,\n",
       " 104,\n",
       " 212,\n",
       " 146,\n",
       " 191,\n",
       " 251,\n",
       " 179,\n",
       " 722,\n",
       " 156,\n",
       " 141,\n",
       " 235,\n",
       " 97,\n",
       " 69,\n",
       " 222,\n",
       " 228,\n",
       " 233,\n",
       " 46,\n",
       " 130,\n",
       " 599,\n",
       " 146,\n",
       " 71,\n",
       " 144,\n",
       " 132,\n",
       " 89,\n",
       " 115,\n",
       " 267,\n",
       " 100,\n",
       " 148,\n",
       " 197,\n",
       " 627,\n",
       " 161,\n",
       " 263,\n",
       " 447,\n",
       " 97,\n",
       " 132,\n",
       " 357,\n",
       " 52,\n",
       " 329,\n",
       " 149,\n",
       " 253,\n",
       " 330,\n",
       " 549,\n",
       " 166,\n",
       " 190,\n",
       " 165,\n",
       " 202,\n",
       " 351,\n",
       " 633,\n",
       " 942,\n",
       " 123,\n",
       " 121,\n",
       " 184,\n",
       " 270,\n",
       " 139,\n",
       " 248,\n",
       " 382,\n",
       " 292,\n",
       " 215,\n",
       " 439,\n",
       " 177,\n",
       " 42,\n",
       " 173,\n",
       " 173,\n",
       " 233,\n",
       " 480,\n",
       " 377,\n",
       " 48,\n",
       " 177,\n",
       " 192,\n",
       " 84,\n",
       " 176,\n",
       " 150,\n",
       " 467,\n",
       " 210,\n",
       " 687,\n",
       " 631,\n",
       " 279,\n",
       " 136,\n",
       " 67,\n",
       " 167,\n",
       " 170,\n",
       " 359,\n",
       " 451,\n",
       " 135,\n",
       " 197,\n",
       " 1009,\n",
       " 87,\n",
       " 241,\n",
       " 492,\n",
       " 336,\n",
       " 88,\n",
       " 170,\n",
       " 425,\n",
       " 459,\n",
       " 331,\n",
       " 199,\n",
       " 158,\n",
       " 69,\n",
       " 121,\n",
       " 116,\n",
       " 120,\n",
       " 297,\n",
       " 173,\n",
       " 293,\n",
       " 103,\n",
       " 477,\n",
       " 723,\n",
       " 133,\n",
       " 413,\n",
       " 109,\n",
       " 101,\n",
       " 227,\n",
       " 141,\n",
       " 939,\n",
       " 199,\n",
       " 162,\n",
       " 377,\n",
       " 172,\n",
       " 532,\n",
       " 68,\n",
       " 41,\n",
       " 130,\n",
       " 83,\n",
       " 136,\n",
       " 787,\n",
       " 117,\n",
       " 165,\n",
       " 111,\n",
       " 124,\n",
       " 552,\n",
       " 172,\n",
       " 130,\n",
       " 96,\n",
       " 153,\n",
       " 181,\n",
       " 49,\n",
       " 119,\n",
       " 88,\n",
       " 100,\n",
       " 297,\n",
       " 363,\n",
       " 632,\n",
       " 218,\n",
       " 168,\n",
       " 100,\n",
       " 212,\n",
       " 120,\n",
       " 84,\n",
       " 135,\n",
       " 268,\n",
       " 127,\n",
       " 746,\n",
       " 127,\n",
       " 236,\n",
       " 335,\n",
       " 193,\n",
       " 843,\n",
       " 251,\n",
       " 165,\n",
       " 210,\n",
       " 239,\n",
       " 311,\n",
       " 214,\n",
       " 29,\n",
       " 334,\n",
       " 168,\n",
       " 127,\n",
       " 169,\n",
       " 110,\n",
       " 164,\n",
       " 147,\n",
       " 205,\n",
       " 133,\n",
       " 188,\n",
       " 125,\n",
       " 183,\n",
       " 326,\n",
       " 150,\n",
       " 290,\n",
       " 214,\n",
       " 328,\n",
       " 51,\n",
       " 343,\n",
       " 212,\n",
       " 454,\n",
       " 96,\n",
       " 471,\n",
       " 82,\n",
       " 523,\n",
       " 114,\n",
       " 147,\n",
       " 200,\n",
       " 387,\n",
       " 174,\n",
       " 150,\n",
       " 103,\n",
       " 187,\n",
       " 183,\n",
       " 115,\n",
       " 144,\n",
       " 131,\n",
       " 241,\n",
       " 57,\n",
       " 46,\n",
       " 23,\n",
       " 419,\n",
       " 227,\n",
       " 110,\n",
       " 91,\n",
       " 66,\n",
       " 137,\n",
       " 104,\n",
       " 164,\n",
       " 417,\n",
       " 127,\n",
       " 78,\n",
       " 181,\n",
       " 179,\n",
       " 181,\n",
       " 261,\n",
       " 243,\n",
       " 205,\n",
       " 155,\n",
       " 166,\n",
       " 180,\n",
       " 77,\n",
       " 440,\n",
       " 284,\n",
       " 328,\n",
       " 258,\n",
       " 61,\n",
       " 193,\n",
       " 39,\n",
       " 156,\n",
       " 124,\n",
       " 108,\n",
       " 322,\n",
       " 376,\n",
       " 162,\n",
       " 359,\n",
       " 139,\n",
       " 302,\n",
       " 646,\n",
       " 44,\n",
       " 253,\n",
       " 244,\n",
       " 438,\n",
       " 432,\n",
       " 226,\n",
       " 236,\n",
       " 336,\n",
       " 166,\n",
       " 444,\n",
       " 195,\n",
       " 74,\n",
       " 127,\n",
       " 213,\n",
       " 195,\n",
       " 148,\n",
       " 174,\n",
       " 148,\n",
       " 149,\n",
       " 136,\n",
       " 77,\n",
       " 53,\n",
       " 151,\n",
       " 215,\n",
       " 129,\n",
       " 196,\n",
       " 135,\n",
       " 146,\n",
       " 235,\n",
       " 166,\n",
       " 359,\n",
       " 132,\n",
       " 167,\n",
       " 141,\n",
       " 188,\n",
       " 365,\n",
       " 138,\n",
       " 118,\n",
       " 110,\n",
       " 309,\n",
       " 261,\n",
       " 127,\n",
       " 76,\n",
       " 900,\n",
       " 211,\n",
       " 273,\n",
       " 233,\n",
       " 149,\n",
       " 212,\n",
       " 302,\n",
       " 268,\n",
       " 295,\n",
       " 212,\n",
       " 143,\n",
       " 467,\n",
       " 256,\n",
       " 230,\n",
       " 129,\n",
       " 145,\n",
       " 119,\n",
       " 83,\n",
       " 322,\n",
       " 208,\n",
       " 132,\n",
       " 149,\n",
       " 278,\n",
       " 136,\n",
       " 198,\n",
       " 164,\n",
       " 349,\n",
       " 200,\n",
       " 278,\n",
       " 439,\n",
       " 130,\n",
       " 161,\n",
       " 223,\n",
       " 561,\n",
       " 397,\n",
       " 302,\n",
       " 282,\n",
       " 187,\n",
       " 192,\n",
       " 107,\n",
       " 361,\n",
       " 126,\n",
       " 201,\n",
       " 79,\n",
       " 415,\n",
       " 133,\n",
       " 300,\n",
       " 124,\n",
       " 355,\n",
       " 978,\n",
       " 323,\n",
       " 114,\n",
       " 85,\n",
       " 143,\n",
       " 221,\n",
       " 190,\n",
       " 215,\n",
       " 244,\n",
       " 626,\n",
       " 64,\n",
       " 127,\n",
       " 180,\n",
       " 128,\n",
       " 206,\n",
       " 221,\n",
       " 261,\n",
       " 122,\n",
       " 201,\n",
       " 221,\n",
       " 139,\n",
       " 315,\n",
       " 356,\n",
       " 254,\n",
       " 131,\n",
       " 128,\n",
       " 234,\n",
       " 129,\n",
       " 66,\n",
       " 134,\n",
       " 121,\n",
       " 470,\n",
       " 373,\n",
       " 129,\n",
       " 127,\n",
       " 92,\n",
       " 127,\n",
       " 223,\n",
       " 179,\n",
       " 651,\n",
       " 452,\n",
       " 935,\n",
       " 146,\n",
       " 170,\n",
       " 438,\n",
       " 94,\n",
       " 159,\n",
       " 312,\n",
       " 302,\n",
       " 128,\n",
       " 121,\n",
       " 280,\n",
       " 622,\n",
       " 166,\n",
       " 126,\n",
       " 157,\n",
       " 353,\n",
       " 45,\n",
       " 132,\n",
       " 324,\n",
       " 65,\n",
       " 304,\n",
       " 149,\n",
       " 243,\n",
       " 117,\n",
       " 719,\n",
       " 164,\n",
       " 116,\n",
       " 61,\n",
       " 368,\n",
       " 407,\n",
       " 73,\n",
       " 571,\n",
       " 170,\n",
       " 303,\n",
       " 159,\n",
       " 42,\n",
       " 400,\n",
       " 295,\n",
       " 183,\n",
       " 75,\n",
       " 215,\n",
       " 255,\n",
       " 229,\n",
       " 445,\n",
       " 1000,\n",
       " 494,\n",
       " 128,\n",
       " 580,\n",
       " 130,\n",
       " 59,\n",
       " 189,\n",
       " 526,\n",
       " 116,\n",
       " 114,\n",
       " 544,\n",
       " 118,\n",
       " 111,\n",
       " 420,\n",
       " 250,\n",
       " 258,\n",
       " 188,\n",
       " 139,\n",
       " 89,\n",
       " 135,\n",
       " 58,\n",
       " 173,\n",
       " 84,\n",
       " 150,\n",
       " 170,\n",
       " 159,\n",
       " 152,\n",
       " 170,\n",
       " 74,\n",
       " 213,\n",
       " 41,\n",
       " 250,\n",
       " 124,\n",
       " 533,\n",
       " 84,\n",
       " 186,\n",
       " 126,\n",
       " 183,\n",
       " 125,\n",
       " 153,\n",
       " 282,\n",
       " 146,\n",
       " 149,\n",
       " 215,\n",
       " 122,\n",
       " 68,\n",
       " 139,\n",
       " 128,\n",
       " 113,\n",
       " 252,\n",
       " 168,\n",
       " 434,\n",
       " ...]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "[len(x) for x in x_train]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 将数据长度填充到指定长度\n",
    "x_train = keras.preprocessing.sequence.pad_sequences(x_train,300)\n",
    "x_test = keras.preprocessing.sequence.pad_sequences(x_test,300)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " 300,\n",
       " ...]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "[len(x) for x in x_train]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 0, 0, ..., 0, 1, 0], dtype=int64)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = keras.models.Sequential()\n",
    "# 将整数映射成密集向量\n",
    "# 参数一：输入数据的维度\n",
    "# 参数二：映射向量的长度\n",
    "model.add(layers.Embedding(10000,50,input_length=300))\n",
    "\n",
    "#(25000,300,50)\n",
    "# 给数据降维\n",
    "# model.add(layers.Flatten())\n",
    "model.add(layers.GlobalAveragePooling1D()) # 比Flatten更好的降维方法，实质是缩小模型的规模\n",
    "\n",
    "model.add(layers.Dense(128,activation='relu',kernel_regularizer='l2'))\n",
    "#model.add(layers.Dropout(0.5))\n",
    "model.add(layers.Dense(1,activation='sigmoid'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_4\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "embedding_4 (Embedding)      (None, 300, 50)           500000    \n",
      "_________________________________________________________________\n",
      "global_average_pooling1d_4 ( (None, 50)                0         \n",
      "_________________________________________________________________\n",
      "dense_8 (Dense)              (None, 128)               6528      \n",
      "_________________________________________________________________\n",
      "dense_9 (Dense)              (None, 1)                 129       \n",
      "=================================================================\n",
      "Total params: 506,657\n",
      "Trainable params: 506,657\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(optimizer=keras.optimizers.Adam(lr=0.001),\n",
    "              loss='binary_crossentropy',\n",
    "              metrics=['acc'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/10\n",
      "98/98 [==============================] - 9s 97ms/step - loss: 1.0289 - acc: 0.6214 - val_loss: 0.7979 - val_acc: 0.7075\n",
      "Epoch 2/10\n",
      "98/98 [==============================] - 8s 87ms/step - loss: 0.7079 - acc: 0.7280 - val_loss: 0.6306 - val_acc: 0.7681\n",
      "Epoch 3/10\n",
      "98/98 [==============================] - 8s 82ms/step - loss: 0.5530 - acc: 0.8215 - val_loss: 0.5099 - val_acc: 0.8393\n",
      "Epoch 4/10\n",
      "98/98 [==============================] - 8s 85ms/step - loss: 0.4547 - acc: 0.8654 - val_loss: 0.4500 - val_acc: 0.8570\n",
      "Epoch 5/10\n",
      "98/98 [==============================] - 9s 93ms/step - loss: 0.4025 - acc: 0.8820 - val_loss: 0.4166 - val_acc: 0.8662\n",
      "Epoch 6/10\n",
      "98/98 [==============================] - 9s 91ms/step - loss: 0.3688 - acc: 0.8942 - val_loss: 0.3943 - val_acc: 0.8718\n",
      "Epoch 7/10\n",
      "98/98 [==============================] - 9s 90ms/step - loss: 0.3439 - acc: 0.9007 - val_loss: 0.3805 - val_acc: 0.8723\n",
      "Epoch 8/10\n",
      "98/98 [==============================] - 10s 97ms/step - loss: 0.3239 - acc: 0.9076 - val_loss: 0.3656 - val_acc: 0.8778\n",
      "Epoch 9/10\n",
      "98/98 [==============================] - 8s 84ms/step - loss: 0.3074 - acc: 0.9122 - val_loss: 0.3556 - val_acc: 0.8801\n",
      "Epoch 10/10\n",
      "98/98 [==============================] - 9s 88ms/step - loss: 0.2935 - acc: 0.9172 - val_loss: 0.3492 - val_acc: 0.8814\n"
     ]
    }
   ],
   "source": [
    "history = model.fit(x_train,y_train,epochs=10,batch_size=256,validation_data=(x_test,y_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x18333a62088>"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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ANwWuzCb7ho3bszatWujLkNqUgh+MTQ+2GNTZOy8s49euflmv00/Fua6Y1pqQELj6EMIrwCvlHnvz3FfjwPGVXDsKEpa+CLpIwSYM6ck1CdP9oulALvuCsccA7/7HfToAYccom4WiUydvEXtuOO2fu/Xv4bLLvMuzpNP3nr7RRf544cfoG/f0tveeafyz7z22mvZe++9ueyyywAYMmQIZsbkyZNZsWIFmzdv5o477qBPnz6Vnmvt2rX06dOn3OOeffZZ7r//fsyMLl26MHr0aL7//nsuvfRS5s2bB8CIESM46qijKi9akmvLFp8iOxbs//2vz2UOfuGzRw8P9x494IADdCFUao06GfRRyM3NZdCgQT8F/dixY3nttdcYPHgwTZs25YcffqB79+6cdtpplc5cmZmZyfjx47c6bvbs2dx555289957tGrV6qf57a+44gqOPfZYxo8fT2FhobqEasqGDfDhhyXB/v77EPvZ77uv394fC/d999VQRam16mTQb6sF3qjRtre3apVYC76sbt26sXTpUhYtWkRBQQHNmzenbdu2DB48mMmTJ7PDDjvw3Xff8f3339OmTZttniuEwA033LDVcZMmTaJv3760atUKKJnfftKkSTz77LMAZGRk0KxZs6p/A1K51as9zGPB/uGHJXeLHnQQXHBBSbDvsUe0tYpUQZ0M+qj07duXcePGsWTJEnJzc3nuuecoKChg+vTpNGjQgPbt27OhvAV/y6joOM1jX8OWLoX//a8k2GfM8BExO+4Ihx4KV1zhwX700X5zkUgdpaCvgtzcXPr168cPP/zAu+++y9ixY9ltt91o0KABb7/9NvPnz0/oPKtWrSr3uOOPP54zzjiDwYMH07Jly5/mtz/++OMZMWIEgwYNorCwkHXr1tG0adNUfqvpqeyImM8/9/czM31EzE03ebB3715nlogTSYSCvgoOOOAA1qxZQ7t27Wjbti3nnnsup556Kjk5OXTt2pX9998/ofNUdNwBBxzAjTfeyLHHHktGRgbdunXj6aef5sEHH6R///48+eSTZGRkMGLECI488shUfqvpIQSYPh3GjYMXX/QblcDHrv/85351vkcPb703bBhpqVK3hOC9eiF4OwH8frcNG3z6/Y0bfXurVhCLhX/+s/S2jRt9ueqePf3rG2+Ee+5JzRRDFkLtmnEgJycn5OXllXpv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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.epoch,history.history.get('acc'),'r',label='acc')\n",
    "plt.plot(history.epoch,history.history.get('val_acc'),'b--',label='val_acc')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x1832d5a59c8>"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.epoch,history.history.get('loss'),'r',label='loss')\n",
    "plt.plot(history.epoch,history.history.get('val_loss'),'b--',label='val_loss')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "解决过拟合问题：1.Dropout   2.正则化L1,L2   3.缩小模型规模"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
